use int_enum::IntEnum;
use strum::{EnumCount, EnumIter};

#[repr(u16)]
#[derive(
  EnumIter, Hash, PartialEq, Eq, Clone, Debug, Copy, IntEnum, EnumCount, Ord, PartialOrd,
)]
pub enum Lang {
  En = 0,
  Zh = 1,
  De = 2,
  Hi = 3,
  Ja = 4,
  Fr = 5,
  It = 6,
  Ru = 7,
  Ko = 8,
  Es = 9,
  Id = 10,
  Tr = 11,
  Ar = 12,
  Nl = 13,
  Pl = 14,
  ZhTw = 15,
  Sv = 16,
  Ga = 17,
  No = 18,
  Th = 19,
  He = 20,
  Vi = 21,
  Ceb = 22,
  Bn = 23,
  Fa = 24,
  Ms = 25,
  Mr = 26,
  Af = 27,
  Da = 28,
  Ro = 29,
  Ur = 30,
  Cs = 31,
  Ta = 32,
  Fi = 33,
  Pt = 34,
  Kn = 35,
  Ca = 36,
  Gu = 37,
  Kk = 38,
  Su = 39,
  Pa = 40,
  El = 41,
  Hu = 42,
  Uk = 43,
  Te = 44,
  Sk = 45,
  Ml = 46,
  Sw = 47,
  Bg = 48,
  Cy = 49,
  Hr = 50,
  Eu = 51,
  Lb = 52,
  Si = 53,
  Lt = 54,
  Sr = 55,
  Az = 56,
  Or = 57,
  Sl = 58,
  Be = 59,
  Gl = 60,
  My = 61,
  Sd = 62,
  As = 63,
  Et = 64,
  Lv = 65,
  Km = 66,
  Ne = 67,
  Bs = 68,
  Hy = 69,
  Is = 70,
  Ka = 71,
  Ht = 72,
  Lo = 73,
  Mk = 74,
  Mt = 75,
  Tg = 76,
  Yi = 77,
}

pub const LANG: &[u32] = &[
  0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
  27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
  51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
  75, 76, 77,
];
